#include <memory.h> Требуется только для об- #include <string.h> явления функции, использует либо <string.h>, либо <memory.h> void movedata (srcseg, srcoff, destseg, destoff, nbytes); int srcseg; адрес исходного сегмента int srcoff; смещение исходного сегмента int destseg; адрес результирующего сегмента int destoff; смещение результирующего сегмента unsigned nbytes; количество байтов
Описание.
Функция movedata копирует nbytes байтов, начиная с исходного адреса, обозначенного srcseg:srcoff , в адрес результата, обозначенный destseg:destoff . Функция movedata предназначена для пересылки far -данных в программах малых или средних моделей, где адреса сегментов данных не известны. В программах больших моделей может быть использована функция memcpy , когда адреса сегментов известны.
Возвращаемое значение.
Возвращаемого значения нет.
Замечание!
Значения сегментов для аргументов srcseg и destseg могут быть получены с помощью применения либо функции segread , либо макроопределения FR_SEG.
Функция movedata не обрабатывает все случаи пересылок с перекрытием корректно (пересылки с перекрытием происходят тогда, когда часть результирующего поля является в этой же области памяти частью исходного). Пересылки с перекрытием корректно обрабатываются функцией memcpy.
Пример:
#include <memory.h> #include <dos.h> char far *src; char far *dest; . . . /* следующие операторы пересылают 512 ** байтов данных из src в dest. */ movedata (FP_SEG (src), FPSEG(dest), FP_OFF(dest), 512);